home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 52 / Amiga Format AFCD52 (Issue 136, May 2000).iso / -screenplay- / shareware / solitarexx / scripts / triples.srx < prev    next >
Text File  |  2000-02-29  |  1KB  |  78 lines

  1. /*******************************\
  2. ** Triples v1.0 for Solitarexx **
  3. **     by Michal Szafranski    **
  4. \*******************************/
  5. OPTIONS RESULTS
  6.  
  7. tex = '"Triples"'
  8. win = '"We Have a Winner"'
  9. seq = '0 1 2 3 4 5 6 7 8 9 10 11 12 0 1 E E'
  10. ADDBUTTON 0 10 "Start"
  11. ADDTEXT 4 42 tex 6
  12. ADDBUTTON 12 10 "Abort"
  13. ADDTEXT 14 42 tex 6
  14. SELECTGUI 1
  15. SCREENSIZE 4 0 5 10
  16. DO i = 0 TO 17
  17.     NEWSTACK 0 1 0 (i//5) (i%5) 2*(i//5) 0 2
  18.     stack.i = RESULT
  19. END
  20. NEWSTACK 20 0 1 4 3 10
  21. deck = RESULT
  22. ADDCARDS deck SHUFFLED
  23.  
  24. DO FOREVER
  25.     ACTION
  26.     PARSE VAR RESULT act rest
  27.     IF act = 1 THEN EXIT
  28.     IF act = 3 THEN CALL GAME
  29. END
  30.  
  31. GAME:
  32.     SELECTGUI 4
  33.     SETGADGET 14 STR tex
  34.     sel1 = 0
  35.     sel2 = 0
  36.     CLEANUP deck
  37.     count = 0
  38.     ile. = 3
  39.     ile.16 = 2
  40.     DO i = 0 TO 17
  41.         CARDSELECT deck ile.i
  42.         MOVECARDS deck stack.i REVERSE
  43.     END
  44.     DO FOREVER
  45.         ACTION
  46.         PARSE VAR RESULT act stack sid card
  47.         IF act = 1 THEN EXIT
  48.         IF act = 2 THEN SELECT
  49.             WHEN sid > 19 | card = 0 THEN ERRBEEP
  50.             WHEN sel1 = 0 THEN sel1 = stack
  51.             WHEN sel2 = 0 THEN sel2 = stack
  52.             OTHERWISE CALL DOSTACKS
  53.         END
  54.         IF act = 3 THEN DO
  55.             SELECTGUI 1
  56.             RETURN
  57.         END
  58.     END
  59. RETURN
  60. DOSTACKS:
  61.     CARDSELECT sel1 1
  62.     PARSE VAR RESULT xx wara xx
  63.     CARDSELECT sel2 1
  64.     PARSE VAR RESULT xx warb xx
  65.     CARDSELECT stack 1
  66.     PARSE VAR RESULT xx warc xx
  67.     IF FIND(seq,wara warb warc)>0 THEN DO
  68.         MOVECARDS sel1 deck
  69.         MOVECARDS sel2 deck
  70.         MOVECARDS stack deck
  71.         count = count +1
  72.         IF count = 17 THEN SETGADGET 14 STR win
  73.     END
  74.     ELSE ERRBEEP
  75.     sel1 = 0
  76.     sel2 = 0
  77. RETURN
  78.